package com.microservice.auth.service;


import com.microservice.api.user.dto.LoginResponseDTO;
import com.microservice.api.user.dto.UserLoginDTO;

/**
 * 认证服务接口
 */
public interface AuthService {
    
    /**
     * 用户登录
     */
    LoginResponseDTO login(UserLoginDTO loginDTO);
    
    /**
     * 刷新令牌
     */
    LoginResponseDTO refreshToken(String refreshToken);
    
    /**
     * 验证令牌
     */
    boolean validateToken(String token);
    
    /**
     * 登出
     */
    void logout(String token);
    
    /**
     * 从Token中获取用户ID
     */
    Long getUserIdFromToken(String token);
    
    /**
     * 从Token中获取用户名
     */
    String getUsernameFromToken(String token);
    
    /**
     * 使指定用户的所有Token失效
     * @param userId 用户ID
     */
    void invalidateUserTokens(Long userId);
    
    /**
     * 解除用户Token封禁
     * @param userId 用户ID
     */
    void unblockUserTokens(Long userId);

    String getNicknameFromToken(String token);
}
